﻿// Decompiled with JetBrains decompiler
// Type: Microsoft.InfoCards.ExceptionTranslationTable
// Assembly: infocard, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// MVID: 8E14765A-6610-409A-BA36-099A0642905D
// Assembly location: E:\git\ALLIDA\windll\infocard.exe

using System;
using System.Collections.Generic;
using System.Security;

namespace Microsoft.InfoCards
{
  internal sealed class ExceptionTranslationTable
  {
    private Dictionary<Type, int> m_table;
    private static ExceptionTranslationTable s_thisTable;

    public static ExceptionTranslationTable Instance
    {
      get
      {
        if (ExceptionTranslationTable.s_thisTable == null)
          ExceptionTranslationTable.s_thisTable = new ExceptionTranslationTable();
        return ExceptionTranslationTable.s_thisTable;
      }
    }

    private ExceptionTranslationTable()
    {
      this.m_table = new Dictionary<Type, int>();
      this.m_table.Add(typeof (ApplicationException), -2146232832);
      this.m_table.Add(typeof (InvalidOperationException), -1073413888);
      this.m_table.Add(typeof (NotImplementedException), -2147467263);
      this.m_table.Add(typeof (SecurityException), -2147024891);
    }

    public int this[Type key]
    {
      get
      {
        return this.m_table[key];
      }
    }

    public bool ContainsKey(Type key)
    {
      return this.m_table.ContainsKey(key);
    }
  }
}
